/*******************************************************************************
 * Copyright (c) 2013 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 ******************************************************************************/

/**
 * function querySelector(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf Document
 * @returns {Element}      
 */ 
Document.prototype.querySelector=function(selectors){return new Element();};

/**
 * function querySelectorAll(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf Document
 * @returns {NodeList}      
 */ 
Document.prototype.querySelectorAll=function(selectors){return new NodeList();};

/**
 * function querySelector(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf DocumentFragment
 * @returns {Element}      
 */ 
DocumentFragment.prototype.querySelector=function(selectors){return new Element();};

/**
 * function querySelectorAll(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf DocumentFragment
 * @returns {NodeList}      
 */ 
DocumentFragment.prototype.querySelectorAll=function(selectors){return new NodeList();};

/**
 * function querySelector(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf Element
 * @returns {Element}      
 */ 
Element.prototype.querySelector=function(selectors){return new Element();};

/**
 * function querySelectorAll(selectors)
 * http://www.w3.org/TR/2012/PR-selectors-api-20121213
 * @param {String} selectors
 * @memberOf Element
 * @returns {NodeList}      
 */ 
Element.prototype.querySelectorAll=function(selectors){return new NodeList();};

/**
 * Property state
 * @type Object
 * @memberOf History
 */
History.prototype.state=new Object();

/**
 * function pushState(data,title,url)
 * http://www.w3.org/TR/2012/CR-html5-20121217/browsers.html#history
 * @param {Object} data
 * @param {String} title
 * @param {String} url - optional
 * @memberOf History
 */
History.prototype.pushState=function(data,title,url){};

/**
 * function replaceState(data,title,url)
 * http://www.w3.org/TR/2012/CR-html5-20121217/browsers.html#history
 * @param {Object} data
 * @param {String} title
 * @param {String} url - optional
 * @memberOf History
 */
History.prototype.replaceState=function(data,title,url){};

/**
 * Property sessionStorage
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @type Storage
 * @memberOf Window
 */
Window.prototype.sessionStorage=new Storage();

/**
 * Property localStorage
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @type Storage
 * @memberOf Window
 */
Window.prototype.localStorage=new Storage();

/**
 * Object Storage
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 */
function Storage(){};
Storage.prototype=new Object();

/**
 * Property length
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @type Number
 * @memberOf Storage
 */
Storage.prototype.length=new Number();

/**
 * function key(index)
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @param {Number} index
 * @memberOf Storage
 * @returns String
 */
Storage.prototype.key=function(index){return new String();};

/**
 * function getItem(key)
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @param {String} key
 * @memberOf Storage
 * @returns String
 */
Storage.prototype.getItem=function(key){return new String();};

/**
 * function setItem(key,value)
 * http://www.w3.org/TR/2011/CR-webstorage-20111208
 * @param {String} key
 * @param {String} value
 * @memberOf Storage
 */
Storage.prototype.setItem=f